import axios from "axios";

//设置请求超时
axios.defaults.timeout = 10000; 
axios.defaults.retry = 3; //设置全局请求次数
axios.defaults.retryDelay = 1000;//设置全局请求间隙
axios.defaults.withCredentials = true
//设置请求头
//axios.defaults.headers.post['Content-Type'] = 'application/json'
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
//请求拦截器
// axios.interceptors.request.use( 
//     config => {
//         const token = store.state.token
//         token && (config.headers.Authorization = token);
//         return config
//     },
//     error => {
//         return Promise.error(error)
//     }
// )
//响应拦截器
axios.interceptors.response.use(
    res => {
        if (res.status === 200) {
            return Promise.resolve(res)
        } else {
            return Promise.reject(res)
        }
    },
    error => {
        if (error.response.status) {
            switch (error.response.status) {
                case 401:
                    router.replace({
                        path: '/login',
                        // query: {
                        //     redirect: router.currentRoute.fullPath 
                        // }
                    });
                    break;
                // case 403:
                //      alert('登录过期，请重新登录')
                //      localStorage.removeItem('token')
                //      setTimeout(() => {
                //         router.replace({
                //             path: '/login',
                //         })
                //      },2000)
                //      break;
                case 404:
                    alert('访问请求不存在')
                    break;
                // default:
                //     alert('其他错误')
            }
            return Promise.reject(error.res)
        }
    }
)
export function get(url,params = '',baseURL = '/bili') {
    axios.defaults.baseURL = baseURL
    return new Promise((resolve,reject) => {
        axios.get(
            url,
            { params }, 
            ).then(res => {
            resolve(res.data)
        }).catch(err => {
            reject(err.data)
        })
    })
}
export function post(url,params,baseURL) {
    axios.defaults.baseURL = baseURL
    return new Promise((resolve,reject) => {
        axios.post(
            url,
            params,
            baseURL
            ).then(res => {
            resolve(res.data)
        }).catch(err => {
            reject(err.data)
        })
    })
}